/**
 * 209. 第一个只出现一次的字符
 * 给出一个字符串，找出第一个只出现一次的字符。
 * https://www.lintcode.com/problem/first-unique-character-in-a-string/description
 *
 * 样例
 * 样例 1:
 * 	输入: "abaccdeff"
 * 	输出:  'b'
 *
 * 	解释:
 * 	'b' 是第一个出现一次的字符
 *
 *
 * 样例 2:
 * 	输入: "aabccd"
 * 	输出:  'b'
 *
 * 	解释:
 * 	'b' 是第一个出现一次的字符
 *
 * @author jeymingwu
 * @date 2019/9/30 15:58
 */
public class L0209_First_Unique_Character_In_A_String {

    /**
     * @param str: str: the given string
     * @return: char: the first unique character in a given string
     */
    public char firstUniqChar(String str) {
        // Write your code here
        if (str.length() == 1) {
            return str.charAt(0);
        }
        int[] nums = new int[128];
        for (int i = 0; i < str.length(); ++i) {
            nums[str.charAt(i)] ++;
        }
        for (int i = 0; i < str.length(); ++i) {
            if (nums[str.charAt(i)] == 1) {
                return str.charAt(i);
            }
        }
        return '0';
    }
}
